package com.bgs.travelapp.role.service.impl;

import com.bgs.travelapp.page.MyPageHelper;
import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import com.bgs.travelapp.role.entity.RoleEntity;
import com.bgs.travelapp.role.mapper.RoleMapper;
import com.bgs.travelapp.role.service.RoleService;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;

import javax.annotation.Resource;
import java.util.Date;
import java.util.List;

/**
 * 2022-07-11 19：35
 * gpd 角色管理 （后端）
 */
@Service
public class RoleServiceImpl implements RoleService {

    @Resource
    RoleMapper roleMapper;

    /**
     * 后端展示---角色新增
     * gpd 2022-07-11 19：45
     * @param roleEntity
     * @return
     */
    @Override
    public Integer saveRole(RoleEntity roleEntity) {
        roleEntity.setDelFlag(1);
        roleEntity.setCreateTime(new Date());
        return roleMapper.insertSelective(roleEntity);
    }

    /**
     *
     * 分页全查+模糊查（角色名称）（后端---角色管理）
     * gpd 2022-07-11 19：55
     * @param pageRequest
     * @param roleName
     * @return
     */
    @Override
    public PageResult roleAllList(PageRequest pageRequest, String roleName) {
        MyPageHelper.startPage(pageRequest);
        Example example  =new Example(RoleEntity.class);
        example.createCriteria().andEqualTo("delFlag",1).andLike("roleName","%"+roleName+"%");
        PageResult pageResult =MyPageHelper.pageInfo(roleMapper.selectByExample(example));
        return pageResult;
    }

    /**
     * 角色修改 （后端---角色管理）
     * gpd 2022-07-11 20：06
     * @param roleEntity
     * @return
     */
    @Override
    public Integer updateRole(RoleEntity roleEntity) {
        roleEntity.setUpdateTime(new Date());
        return roleMapper.updateByPrimaryKeySelective(roleEntity);
    }

    /**
     * 角色删除 （后端---角色管理）
     * gpd 2022-07-11 20：16
     * @param id
     * @return
     */
    @Override
    public Integer deleteRole(Integer id) {
        RoleEntity roleEntity = new RoleEntity();
        roleEntity.setDelFlag(0);
        roleEntity.setId(id);
        return roleMapper.updateByPrimaryKeySelective(roleEntity);
    }

    /**
     * 查询所有角色关联用户管理 （后档---用户管理）
     * gpd 2022-07-11 20：26
     * @return
     */
    @Override
    public List<RoleEntity> getRoleName() {
        Example example  =new Example(RoleEntity.class);
        example.createCriteria().andEqualTo("delFlag",1);
        return roleMapper.selectByExample(example);
    }

    /**
     * 角色添加权限 （后端---角色管理）
     * gpd 2022-07-11 20：36
     * @param roleEntity
     * @return
     */
    @Override
    public Integer saveJurisdiction(RoleEntity roleEntity) {
        return roleMapper.updateByPrimaryKeySelective(roleEntity);
    }
}
